import logging
from redis import StrictRedis


class Config(object):
    """工程配置信息"""
    DEBUG = True
    # 设置加密方式
    SECRET_KEY = "S3lzlHImOe1pS53COP3dBninQlVK/cO/DMlIxfK+fphEiKZ2oAS+KM2RBeioK7IO"
    # 数据库的配置
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/info_pro"
    # 是否跟踪修改
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 在请求结束后自动提交数据库的操作
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    # redis配置,设置地址和端口,存储配置
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379
    # 设置session方式
    SESSION_TYPE = 'redis'
    # 使用 redis 的实例，设置session存储到Redis的位置
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    # 开启session签名，默认为False
    SESSION_USE_SIGNER = True
    # 设置需要过期，初始为True
    SESSION_PERMANENT = False
    # session 的有效期，单位是秒,这里设置过期时间
    PERMANENT_SESSION_LIFETIME = 86400


class DevelopmentConfig(Config):
    # 开发环境下的配置
    DEBUG = True
    # 默认日志等级
    LOG_LEVEL = logging.DEBUG


class ProductionConfig(Config):
    # 生产环境下的配置
    DEBUG = False
    # 生产环境下的数据库配置，目前不做其他设置
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/info_pro"
    # 默认日志等级
    LOG_LEVEL = logging.ERROR


class TestingConfig(Config):
    # 开发环境下的配置
    DEBUG = True
    # 开启测试模式
    TESTING = True
    # 默认日志等级
    LOG_LEVEL = logging.DEBUG


config = {
    "development": DevelopmentConfig,
    "production": ProductionConfig,
    "testing": TestingConfig
}
